iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0

▋前言


延續昨日的分析,今天我們實際嘗試修正雙人獨立錄音的處理方式,讓系統能正確識別「誰在說話、何時說話、以及雙方的情緒互動」,這是語音 AI 應用落地的重要一環。

▋內容


Step 1:音訊合併

使用 pydub 將 sw02001A.wav(講者 A)與 sw02001B.wav(講者 B)合併成雙聲道音檔:

from pydub import AudioSegment

a = AudioSegment.from_wav("sw02001A.wav")
b = AudioSegment.from_wav("sw02001B.wav")
merged = AudioSegment.from_mono_audiosegments(a, b)
merged.export("sw02001_merged.wav", format="wav")

合併後,左聲道為 A、右聲道為 B,模型在處理時能同時接收兩個聲音來源。

Step 2:重新分析結果

重新跑完整流程後:

  • Diarization:成功分出 Speaker 0 與 Speaker 1。

  • STT (Whisper):逐字稿依時間正確排列。

  • SER (SpeechBrain):可觀察對話的情緒曲線。

雖然把已經分離的音軌合併感覺有點多此一舉,但依照目前系統的分析方式,結果可能會得到改善,例如:

Speaker 0: "I think the weather’s been crazy lately."
Emotion: Neutral → Happy
Speaker 1: "Yeah, it’s been so unpredictable!"
Emotion: Neutral → Excited

這樣的輸出不僅標註了講話者,也呈現了雙方的情緒變化,讓整體互動更具可讀性。

Step 3:前後差異對照

項目 修正前 修正後
語者數 1 人 × 2 檔 2 人 × 1 檔
對話結構 無法對齊 時間同步可讀
情緒分析 各自分散 雙向交互
分析價值 單向片段 完整互動

Step 4:經驗與反思

這次實驗再次證明: 資料的結構化與同步性,是 AI 成功分析的基礎。
模型的準確率固然重要,但若輸入資料在格式與時間軸上不一致,結果再好也難以反映真實互動。
因此,在設計語音分析系統時,資料前處理(Data Preprocessing)與對齊(Alignment) 是不可忽略的步驟。

▋下回預告


下一篇我們將迎來系列的最後一個資料集 —— IEMOCAP。
這是一個專門為情緒辨識設計的對話語音資料集,我們將用它來驗證整個系統在情緒分析模組上的穩健度與可擴充性。

▋參考資料


Switchboard
huggingface hhoangphuoc/switchboard


上一篇
Day 26 Switchboard 資料應用 - 雙人錄音的挑戰
下一篇
Day 28 IEMOCAP 資料應用 — 系統分析結果
系列文
AI語音辨識系統:結合聲紋分析與情緒識別28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言